#ifndef EMPLACEMENTS_H
#define EMPLACEMENTS_H

#include <QSet>
#include <QMultiMap>

#define GAUCHE 0
#define HAUTGAUCHE 1
#define HAUTDROITE 2
#define DROITE 3
#define BASDROITE 4
#define BASGAUCHE 5

#define SUD 0
#define SUDOUEST 1
#define NORDOUEST 2
#define NORD 3
#define NORDEST 4
#define SUDEST 5

#define HEXAGONE 6

#define ROUGE 0
#define NOIR 1
#define JAUNE 2
#define BLEU 3
#define MARRON 4
#define VERT 5


class Emplacements
{

public:
    Emplacements(int numero);
    Emplacements();
    ~Emplacements();

    void setZoneAndPlayer(int nbjoueurs, int mode, QSet<int> *set[]);

    //isVoisin renvoie le numero du voisin dans le tableau d'emplacement s'il trouve, -1 sinon
    int isVoisin(int voisin);
    int isVoisin(Emplacements *voisin);

    //renvoie vrai si l'emplacement appartient a un joueur (et donc est une piece) faux sinon
    bool isPiece();


    int m_numero;       //numero de l'emplacement (de 0 a 120, de bas en haut)
    int m_zone;         //numero de la zone (de 0 a 6, du sud au sud-est, l'hexagone etant le 6)


    int m_couleurp;     //numero de la couleur associée au joueur (de 0 a 6, -1 si ce n'est pas une piece)
    int m_numjoueur;    //numero de joueur a qui appartient l'emplacement si c'est un pion (de 0 a 6, -1 si ce n'est pas une piece)

    Emplacements* m_voisins[6];

};

#endif // EMPLACEMENTS_H
